1. Statement of the Technical Field
The present invention relates to the field of Internet messaging and more particularly to an Internet Message Access Protocol (IMAP) server implementation.
2. Description of the Related Art
Messaging clients and in particular, electronic mail (e-mail) clients include numerous options for managing, manipulating and viewing e-mail. Conventional e-mail clients include a simplified interface designed both to enhance the end-user experience and also to facilitate mail administration while reducing support costs. Through the conventional e-mail client, end-users can configure and store personal preferences, compile bulk mailing lists, archive and back up mail, and even create filters and drop spam into virtual wastebaskets. By providing end users with feature-rich e-mail clients, administrators can relieve themselves of many duties traditionally given to the “postmaster.”
Modern e-mail clients predominantly include but two “flavors”: clients which comport to the Post Office Protocol (POP), and clients which implement the Internet Message Access Protocol (IMAP). Both POP and IMAP compliant e-mail clients can access e-mail in online, offline and disconnected modes In an offline mode, e-mail can be received and stored on a shared server and forwarded on demand to a mail client on a remote computer. Notably, the POP protocol originally had been designed for use in an offline mode. In this regard, once an e-mail has been downloaded, or “POPped,” it can be removed from the mail server, and all future processing in respect to the e-mail can occur within the machine hosting the e-mail client.
Given its simplicity, the POP protocol has won the hearts and minds of many a road warrior, yet for truly unlimited access to one's e-mail, the POP protocol can be deficient and the IMAP protocol will be required. In the IMAP protocol as defined by RFC 3501, e-mail clients access e-mail folders online and manipulate them on a remote server as if the e-mail folders were a local resource. Users can create, delete and rename message folders, or “mailboxes,” check for new messages and permanently remove messages. IMAP, like POP, provides for RFC 822 and MIME parsing and searching, and it adds support for selective download of message attributes, text and attachments. IMAP also works in disconnected mode (IMAP-DISC), in which a mail client downloads a set of messages from the server, manipulates them offline, then reconnects to the server and synchronizes changes. Nevertheless, unlike POP, in all cases in IMAP the e-mail server remains the authoritative message store.
It will be recognized by the skilled artisan that e-mail clients, whether POP or IMAP compliant, no longer can be viewed exclusively as ordinary desktop applications. Rather, e-mail clients must be viewed as part and parcel of a business-critical messaging system. Consequently, twenty-first century e-mail clients are embodied within a full thirty-two bit application which can provide quick and easy access to incoming e-mail, myriad features available from pull-down menus, and extensive right-click context menus that provide multiple options on selected resources. Drag-and-drop functionality and keyboard shortcuts are also common. Moreover, the modern, stand-alone e-mail client can provide extensive message-filtering capabilities to manipulate e-mail automatically and reply to messages with auto-responses. Built-in e-mail client features also allow the end-users to create and send bulk e-mail from precompiled lists stored in text files and provide options for dealing with unsolicited bulk e-mail known commonly as “spam”.
Despite the advancement of the e-mail client, recent trends in computing require the further development of the e-mail client and its integration into the n-tier enterprise. In particular, enterprise computing has begun to embrace the notion of collaboration between multiple users resulting in the rise of collaborative software. In the collaborative software environment, multiple users are grouped together logically in an environment in which documents can be shared and manipulated by the users, users can participate in online conferences and in instant messaging, and users can experience computer based training, or “e-Learning”. Thus, messaging can form an important portion of the foundation of collaborative computing.
To date, less than a handful of collaborative computing applications have incorporated IMAP based messaging within the structure of the collaborative computing application. In particular, while IMAP configured e-mail clients have become prevalent, a IMAP configured servers seldom have been included as part and parcel of the collaborative computing application. In those circumstances where a collaborative application has been configured with an IMAP server, the IMAP server literally has been “bolted” onto the collaborative application in a client-server manner and lacks the scalability required by the modern enterprise architecture including the J2EE™ based enterprise environment. Accordingly, traditional collaborative computing applications have not been able to capitalize upon the advantages of IMAP while retaining the scalability associated with the n-tier architecture of J2EE.